#pragma once
#include<iostream>
#include<string>
#include"Util.hpp"

namespace Log_ns
{

using namespace util_ns;

enum{
    INFO = 1,
    DEBUG,
    WARNNING,
    ERROR,
    FATAL
};


inline std::ostream& Log(const std::string& level,const std::string& filename,int line)
{
    std::string message;

    //添加日志水平
    message += "[";
    message += level;
    message += "]";

    //添加文件名
    message += "[";
    message += filename;
    message += "]";

    //添加文件的行号
    message += "[";
    message += std::to_string(line);
    message += "]";

    //添加时间戳信息
    message += "[";
    message += Time_Util::GetTimeStamp();
    message += "]";

    //将message加入到缓冲区中
    std::cout << message;//先不要将内容从缓冲区中刷新出来
    
    return std::cout;
}

#define LOG(level) Log(#level,__FILE__,__LINE__)
};